//
//  BaseController+HXLogin.h
//  RomensBI
//
//  Created by 王增战 on 2017/1/23.
//
//

#import "RomensSDK/BaseController.h"
#import "ConversationListController.h"
@interface BaseController (HXLogin)

/**
 获取环信的Appkey,初始化环信SDK
 若中间层方法的返回值是字典；
 @param webUrl 中间层访问方法的链接／App的后台的链接的头部
 @param string /handle/unhandle/unloadhandle/
 @param type 中间层方法的名字
 @param dicParams 参数
 @param key 中间层方法的返回数据是字典，的key
 @param block 返回环信的初始化结果
 */
- (void)HX_GetHXAppkeyByRequest:(NSString *)webUrl
                  apendingString:(NSString *)string
                       queryType:(NSString *)type
                        postData:(id)dicParams
                        ReDicKey:(NSString *)key
                           Block:(void(^)(BOOL isSDKInit))block;

/**
 获取环信的Appkey，初始化环信SDK。//作用同上，只有返回值不同。
 
 @param webUrl 中间层访问方法的链接／App的后台的链接的头部
 @param string /handle/unhandle/unloadhandle/
 @param type 中间层方法的名字
 @param dicParams 参数
 @param key 中间层方法的返回值的字典的key
 @param success 环信SDK的初始化结果/返回通过中间层获得的数据
 */
- (void)HX_GetHXAppkeyByRequest:(NSString *)webUrl
                 apendingString:(NSString *)string
                      queryType:(NSString *)type
                       postData:(id)dicParams
                       ReDicKey:(NSString *)key
                        success:(void(^)(BOOL isSDKInit,id respone))success;

/**
 登录环信
 
 @param username 用户名
 @param password 密码
 @param CheckLoginReturnBlock null,可执行下一步操作
 */
- (void)HX_loginWithUsername:(NSString*)username password:(NSString *)password block:(void(^)(void))CheckLoginReturnBlock;
- (void)HX_loginWithUsername:(NSString*)username password:(NSString *)password block:(void(^)(void))CheckLoginReturnBlock showHud:(BOOL)isSHow;
//- (void)HX_loginWithUsername:(NSString*)username
//                    password:(NSString *)password
//                     animate:(BOOL)isSHow
//                       block: (void(^)(void))CheckLoginReturnBlock;

- (ConversationListController *)HX_presentViewController;



/**
 注销(环信的注销方式)

 @param animated 是否使用环信的动画
 @param logoutBlock 如果在环信退出时，还要进行其他的操作，在此处添加
 */
- (void)HX_logoutActionWithAnimated:(BOOL)animated Block:(void (^)(void))logoutBlock;

/**
 获取编码后的UserGUid

 @param username 用户名
 @param Pwd 密码
 @return userGuid
 */
- (NSString *)GetUserGuid:(NSString*)username pwd:(NSString*)Pwd;


/**
 获取所有用户的数据,可根据需求调用
 环信登录成功后，在切换根控制器时，初始化环信数据
 登录时数据初始化
 */
- (void)HX_asynInitDataWithGroup:(BOOL)isSync;
- (void)HX_asynInitData;//相当于调用了上面的方法，参数默认为YES；

#pragma mark -- 弃用的接口
/**
 登录环信
 
 @param username 用户名
 @param password 密码
 @param hxAppKey appkey,为空
 @param CheckLoginReturnBlock null,可执行下一步操作
 */
- (void)HX_loginWithUsername:(NSString*)username
                    password:(NSString *)password
                    hxAppKey:(NSString *)hxAppKey
                       block: (void(^)(void))CheckLoginReturnBlock __deprecated_msg("Use -HX_loginWithUsername:password:block:");

/**
 注销(环信的注销方式)
 
 @param logoutBlock 如果在环信退出时，还要进行其他的操作，在此处添加
 */
- (void)HX_logoutAction:(void (^)(void))logoutBlock __deprecated_msg("HX_logoutActionWithAnimated:Block:");
- (void)HX_logoutAction __deprecated_msg("HX_logoutActionWithAnimated:Block:");
//获取环信的Appkey
- (void)HX_GetHXAppkeyWithWebURL:(NSString *)webUrl
                  apendingString:(NSString *)string
                       queryType:(NSString *)type
                        postData:(id)dicParams
                        ReDicKey:(NSString *)key
                           Block:(void(^)(NSString *appkey))keyBlock __deprecated_msg("HX_GetHXAppkeyByRequest:apendingString:queryType:postData:ReDicKey:Block");
@end
